package chapter5;

import java.util.Date;

/**
 * @Author juzipi
 * @Date 2021/5/14 11:49
 * @Info
 */
public class LocalVariablesTest {

    private int count = 0;

    public static void main(String[] args) {
        LocalVariablesTest localVariablesTest = new LocalVariablesTest();
        int num = 10;
        localVariablesTest.test1();
    }

    public static void testStatic(){
        LocalVariablesTest test = new LocalVariablesTest();
        Date date = new Date();
        int count = 20;
        System.out.println(count);
        //报错，因为this变量不存在于当前方法的局部变量表中
//        System.out.println(this.count);
    }

    //slot的使用理解
    public LocalVariablesTest(){
        this.count = 100;
    }


    public void test1(){
        Date date = new Date();
        String name = "你好呀";
        test2(date,name);
    }

    public String test2(Date date1, String name1){
        date1 = null;
        name1 = "类";
        double weight = 130.4;
        char gender = '男';
        return date1 + name1;
    }

    public void test3(){
        count++;
    }

    public void test4(){
        int a = 0;
        {
            int b = 0;
            b = a + 1;
        }
        int c = a + 1;
    }

    /*
    变量的分类：按照数据类型分：①基本数据类型 ②引用数据类型
        按照在类中声明的位置分: ①成员变量：(在使用前都经历过默认初始化赋值)

         （static修饰）类变量，例子 public static String name; ==> linking（链接阶段）：给类变量赋默认值 --> initial（初始话阶段）给类变量显式赋值（静态代码块赋值）
          实例变量,例子 public String name; ==> 随着对象的创建，会在堆空间中分配实例变量空间，并进行默认赋值
                             ②局部变量：（在使用前必须要显式的赋值）
                                    例子 int i = 0;

     */

    public void test5(){
        int i;
//        System.out.println(i);//变量没有初始化
    }

}
